Electronic circuit designs may be prepared using any of a variety of approaches. In one approach, the designer creates a graphical model of the system using a tool such as the System Generator for DSP from XILINX®, Inc., which enables use of the SIMULINK® model-based environment from The MATHWORKS®. These types of tools provide a graphical user interface (GUI) for preparing, simulating, and even implementing a circuit design. Basic building blocks are instantiated, connected, and combined into larger blocks of the design via the GUI. Each block generally has at least one input signal, at least one output signal, and an equation that defines the relationship between the input and output signals.
In another approach, a design can be specified in a hardware description language (HDL) such as VHDL or Verilog. In an HDL approach versus the GUI approach, the designer has a greater level of control over the eventual implementation. However, when using an HDL the designer may sacrifice the benefits associated with the ability to abstract the design at a high level as provided by a GUI approach.
A scripting language such as MATLAB provides a higher level of abstraction for creating a design than does an HDL. A scripting language supports flexible parameterization through which, for example, components of a design may be easily scaled for different applications. However, scripting languages may be cumbersome for quickly assembling components of a circuit design. Other high-level programming languages such as JAVA™, JAVASCRIPT™, C++, and Tcl (Tool Command Language), are also sometimes used to create circuit designs. However, developing circuit designs using these languages has the same drawbacks as using MATLAB.